#include <iostream>

using namespace std;
class Foo
{
public:
    // explicit Foo(int x) : value(x) {}
    explicit Foo(int x, int y = 0) {}

private:
    int value;
};

void func(Foo f)
{
    // ...
}

int main()
{
    // Foo foo = 10; // 错误，必须使用 Foo foo(10) 或 Foo foo = Foo(10)
    // func(10);     // 错误，必须使用 func(Foo(10))
    double a = 10.5f;
    Foo foo(a); // 这里是内置类型转换
}
